МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Потоки та робота із файлами у Java
1. МЕТА РОБОТИ
Одержати навики роботи з потоками в Java.
2.ЛАБОРАТОРНЕ ЗАВДАННЯ
Створити програму копіювання файлу з одного каталога в іншій. Компоненти графічного вікна: напис "Копіювання файлу" у області North, розщеплена панель у області Center і кнопка "Копіювати" у області South. У лівій частині розщепленої панелі розміщений об'єкт класу JFileChooser для вибору файлу копіювання, а в правій частині - інший об'єкт класу JFileChooser, в якому вибирається каталог для копіювання. Копіювання файлу виконується при натисненні кнопки.
3.КОД ПРОГРАМИ
package com.copyFile.test;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class CopyGUI extends JFrame implements ActionListener, ChangeListener
{
private JLabel fromLabel;
private JLabel toLabel;
private JTextField fromField;
private JTextField toField;
private JButton fromButton;
private JButton toButton;
private JProgressBar progressBar;
private JButton beginButton;
private File fromFile;
private File toFile;
private long fileLength;
private String fileName;
public CopyGUI()
{
try {
init();
}
catch(Exception ex)
{
}
}
private void init() throws
ClassNotFoundException,
UnsupportedLookAndFeelException,
InstantiationException,
IllegalAccessException
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setBounds(200, 200, 400, 300);
setResizable(false);
setTitle("File Copy");
JPanel panel = new JPanel(null);
panel.setBackground(new Color(79, 199, 238));
add(panel);
Border borderForButton = BorderFactory.createLineBorder(Color.white, 1);
Border border = BorderFactory.createLineBorder(Color.white, 1);
fromLabel = new JLabel("From:");
fromLabel.setBounds(40, 20, 50, 20);
fromLabel.setForeground(Color.white);
fromField = new JTextField();
fromField.setBounds(100, 20, 200, 20);
fromButton = new JButton("Browse");
fromButton.setBounds(300, 20, 80, 20);
fromButton.addActionListener(this);
fromButton.setContentAreaFilled(false);
fromButton.setForeground(Color.WHITE);
fromButton.setBorder(borderForButton);
toLabel = new JLabel("To: ");
toLabel.setBounds(40, 40, 50, 20);
toLabel.setForeground(Color.white);
toField = new JTextField();
toField.setBounds(100, 40, 200, 20);
toButton = new JButton("Browse");
toButton.setBounds(300, 40, 80, 20);
toButton.addActionListener(this);
toButton.setContentAreaFilled(false);
toButton.setForeground(Color.WHITE);
toButton.setBorder(borderForButton);
panel.add(fromLabel);
panel.add(fromField);
panel.add(fromButton);
panel.add(toLabel);
panel.add(toField);
panel.add(toButton);
progressBar = new JProgressBar();
progressBar.setBounds(50, 100, 300, 30);
progressBar.addChangeListener(this);
progressBar.setBorder(border);
panel.add(progressBar);
beginButton = new JButton("Copy");
beginButton.setBounds(50, 130, 300, 70);
beginButton.setForeground(Color.WHITE);
beginButton.setFont(new Font("Verdana", Font.BOLD, 20));
beginButton.setBorder(borderForButton);
beginButton.setContentAreaFilled(false);
beginButton.addActionListener(this);
panel.add(beginButton);
}
public void actionPerform...